Cascading Style Sheet (CSS) is a stylesheet language used to describe the presentation of a document written in a markup language (e.g., HTML or XHTML). CSS most common application is to style web pages, but the language can be applied to any kind of XML document. The CSS specifications are maintained by the World Wide Web Consortium.
Traditionally, CSS (Cascading Style Sheets) have been authored with little emphasis on cross-product code sharing. CSSs for each product have been self-contained and isolated. When a set of web products want to use a common set of user interface guidelines, each product team would implement the guidelines (with varying interpretations and coverage) in its own CSSs thereby duplicating efforts and making it harder for the user interface guidelines to evolve.
For example, web products often want to implement themeing. Themeing allows developers to have the ability to apply a given theme (a set of text color, background color, background images, etc) to any or all products. The CSS standard's model is not adequate to represent such a system due to the lack of support for variables and inheritance. A few product teams have used server-side technologies to inject variables into CSS. However, that approach makes CSS considerably harder to author and localize because the system is restricted in the types of modifications it can make to CSS generation and there is no consistent way for defining, accessing and overriding theme resources like images.
Additionally, localizing CSS is an expensive process where product CSS is given to localizers and they modify and return localized CSS. Examples of localized CSS styles include fonts, text sizes, colors, and text styles (e.g., italics, bold). In general, the localizer often modifies CSS without actually seeing the output and the actual product testing happens after the CSS is handed back to the product team. This makes the process error prone, time consuming and expensive.